The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section. Furthermore, all embodiments are not necessarily intended to solve all or even any of the problems brought forward in this section.
When a distributed computation is to be performed, a distribution server may divide the computation into J “jobs”. These J jobs are a subset of the computation to be performed. For instance, if a computation needs to individually invert 3000 matrixes, each jobs may represents the inversion of a single matrix or the inversion of two matrixes.
The created jobs may thus be distributed to C “clients”. Most of the time, the integer C is not equal to the integer J. The clients may be physical computers but may also be computing instances created on a Supercomputer. Each client has to perform the “job(s)” allocated by the distribution server to it. To be able to perform the job, the client may need external data. This data may be stored on a network storage or an external storage server.
When the job is finished, the client refers to the distribution server, and this server allocates a new job to this client (if available).
If the size of data to be downloaded by each client on the storage server to perform the job is important, the link(s) between the storage server and the clients may quickly be overloaded. In addition, the read speed of data in the storage server may also be a limiting operation.
For instance, when performing intensive computations in seismic domain (e.g. Common Reflection Stack computation), the reading of data may represent up to 80% of the whole computation time.
Thus, there is thus a need for a computing architecture that may enhance the speed of the distributed computation, especially when the access of data for the computation is limiting.